%include "nodo.mac"

;bool verificar_id(Lista* laLista, Uint32 ID)
global verificar_id


%define ptr_lista [ebp+8]
%define ID [ebp+12] ;
section .text
;{
;	Iterador* iterador = constructor_iterador(laLista);
;	bool noExiste = true;
;	Nodo* actual;
;	Uint32 IDNodo32;
	
;	while(hay_proximo(iterador) && noExiste)
;	{
;		actual = item(iterador);
;		IDNodo32 = actual->ID.lo;
		
;		if(IDNodo32 == ID)
;			noExiste = false;
		
;		proximo(iterador);
;	}
	
;	liberar_iterador(iterador);
	
;	return noExiste;
;}

verificar_id:
	push ebp			; creo el marco de la pila
	mov ebp, esp		

	push ebx			; salvo registros convencion C
	push edi		
	push esi	
	
	mov edi, ptr_lista		
	xor ecx, ecx
	mov ecx, [edi]			; ecx = primer nodo

ciclo:
	cmp ecx, 0
	je no_esta
	mov esi, [ecx + _prox] 		; esi = prox nodo
	mov ebx, [ecx + _ID]
	cmp ebx, ID
	je esta
	mov ecx, esi			; ecx = nodo->prox

esta:
	mov eax, 0
	jmp fin

no_esta:
	mov eax, 1

fin:
	pop esi				; desarmo el marco de pila
	pop edi		
	pop ebx		
	pop ebp		

	ret
